2 Microsoft® DirectX® 8.0 SDK
7 - DIRECTX 8.0 SDK RELEASE NOTES AND KNOWN ISSUES
10 __________________________________________________________________
17 DirectX Audio (DirectSound & DirectMusic)
18 =========================================
20 DirectX 8.0 audio covers both DirectSound and DirectMusic API's. In
21 DirectX 8.0, these API's are more closely aligned and tied together.
23 There are many new features. They include:
25 Effects processing on DirectSound Buffers
29 Optional Filter per voice
33 "Audiopaths": a powerful and easy way to use the DirectMusic DLS2 synthesizer
34 for sound effects programming.
35 Submixing of audio prior to 3D processing (by DLS2 synthesizer)
36 Automatic streaming and ACM compression (ADPCM, etc.)
37 Composition enhancements
40 We also think you will want to look at using the DLS2 synthesizer as your
41 main sound effects engine. The DLS2 synthesizer is accessed primarily through
42 the DirectMusic API's. Please do not let the word, "Music" mislead you; the
43 DirectX 8.0 DirectMusic API's have been enhanced *specifically* for sound effects
44 playback. The new DirectMusic API's that are designed to support sound effects
45 refer to audiopaths. Please investigate audiopaths; they provide a lot of
46 cool features for sound effects. For example, if you have multiple sounds
47 that need to come from the same 3d location, you can pre-mix them (using Audiopaths)
48 and use only one 3d hardware buffer to play them.
51 DirectSound in particular has some greater parameter validation in place
52 when the DirectSound8 interfaces are used.
54 -Waveformats are more tightly parsed
55 -You can no longer create a DirectSoundBuffer with both CTRL_3D and CTRL_PAN set
56 -You can no longer create a DirectSoundBuffer with CTRL_3D set and a wave format
57 with more than 1 channel. I.e. Only mono buffers may be created with CTRL_3D.
59 Scripting is very exciting. It puts much of the control over the audio
60 implementation of the game into the hands of the sound designer. Using
61 scripts, audio designers can change implementations, make the music 'magically'
62 interactive, and play different sound effects based on in-game variables.
63 It also drastically shortens the edit-integrate-listen cycle. This should
64 result in improved sound effects and music, with much less game-programmer
67 There are sections in the documentation on a new FullDuplex interface and
68 "Capture effects." These interfaces are not currently supported.
70 If you are using DirectPlayVoice, you should use those interfaces. If your
71 application requires audio capture outside of DirectPlayVoice,
72 you should use the existing DirectSoundCapture interfaces.
78 Migration of DirectDraw into Direct3D:
80 In DirectX 8.0, DirectDraw® is fully integrated into Microsoft Direct3D
81 to enable drastically simplified application initialization, improved data
82 allocation and management performance, and reduced memory footprint.
83 The new Direct3D infrastructure provides the services that are called
84 at relatively low frequency. These services comprise:
86 - Creation of Direct3D
87 - Creation of resources (textures, vertex buffers etc)
88 - Display mode selection
89 - Presentation of rendered images to the display
91 New Graphics Features for DirectX 8.0 are:
93 Parallel vertex input streams for more flexible mapping to dynamic
94 application data structures. Programmable vertex processing language
95 enables programmers to write hardware shaders for:
97 - Morphing/tweening animation
98 - Matrix palette skinning
99 - User-defined lighting models
100 - General environment mapping
101 - Procedural geometry
102 - Any other developer-defined algorithm
104 Programmable Pixel processing language enables programmers to write
105 hardware shaders for:
107 - Per-pixel lighting/bump mapping
108 - Per-pixel environment mapping
109 - Any other developer-defined algorithm
111 MultiSample Rendering support enables:
113 - Full-scene antialiasing
114 - Multisample effects such as motion blur, depth-of-field, etc.
116 Point Sprites enable:
118 - High-performance rendering of particle systems
120 3-D Volume textures enable:
122 - Range-attenuation in per-pixel lighting
123 - Volume atmospheric effects
124 - Easy texturing of very complex geometry
126 Higher-Order Primitive Support:
128 - For enhancing the appearance of 3-D content
129 - Facilitating mapping of content from major 3-D authoring tools
131 Higher-Level Technologies:
133 - 3-D content creation tool plugins for export into Direct3D of skinned
134 meshes using a variety of Direct3D techniques such as, multi-resolution
135 LOD geometry, and higher order surface data.
137 Direct3D Feature Notes:
139 No significant API changes are contemplated beyond this point.
140 All implemented features have been tested individually
141 to some extent, but they have not been tested in exhaustive combinations
142 yet. Many features in DirectX 8.0 are awaiting new hardware, however
143 there is at least one implementation available for each of the features
146 - Programmable vertex shaders are supported on the host CPU. On CPUs they
147 will operate with performance comparable to HW implementations and can be
148 used immediately for DirectX 8.0 prototyping and development.
149 - Programmable pixel shaders are supported on the host CPU using refrast
150 only. These can be used for prototyping DirectX 8.0 shaders for use when
152 - Parallel DMA data input is supported on refrast and the SW geometry pipeline.
153 - Point Sprites are supported in refrast, software T&L pipeline, and should
154 be supported in a prototype DirectX 8.0 driver from at least one hardware
156 - Volume Textures are supported in refrast.
157 - Multisample rendering is supported in refrast and future hardware.
158 - Higher-Order Primitives are supported in refrast and via D3DX utilities.
163 Debug Binaries for D3DX:
165 The D3DX library is a static library. However, to help debugging, we also
166 have a debug only dynamic library of D3DX in DirectX 8.0. To use this, link
167 with the d3dx8d.lib which is an import lib corresponding to the D3DX8D.DLL.
168 If you are reporting a bug and sending Microsoft an example that reproduces
169 that behavior, please make sure the executable is linked to the dynamic debug
172 The dynamic debug d3dx8 library is for debugging only and is not intended
173 for use of shipping applications. D3DX8D.DLL is installed as part of the
174 DirectX 8.0 SDK setup, not as part of the redistributable runtime setup.
175 This will not be available as part of future operating systems.
177 If apps want to statically link to the debug d3dx8 library they need to
178 link to d3dx8dt.lib. To statically link to a retail d3dx8 library please
181 The D3DX Effect Framework
183 The D3DX effect framework allows you to define shading effects using a text
184 file that describes the various techniques of implementing an effect. For
185 an example of an effect file see water.sha in the C samples media directory.
191 DirectInput for DirectX 8.0 features a major addition, the DirectInput
192 Mapper. The Mapper makes it possible for applications to code to their
193 in-game actions, without the effort of figuring out the actions represented
194 on the device itself. Additionally, the Mapper makes user configuration
195 of devices much simpler by offering a default configuration UI.
197 DIPROP_KEYNAME is supported by the IDirectInputDevice8::GetProperty
198 method. DIPROP_KEYNAME retrieves the localized key name, in the form
199 of a DIPROPSTRING, from a DirectInput DIK_* value.
201 DIPROP_SCANCODE is supported by the IDirectInputDevice8::GetProperty
202 method. DIPROP_KEYNAME retrieves the device scancode, in the form of a
203 DIPROPDWORD, from a DirectInput DIK_* value.
209 DirectPlay has been completely rewritten in DirectX 8.0 to provide the
210 robust scalability required to build high performance, massively
211 scaleable network games. With version 8.0, DirectPlay also provides
212 voice communication via the DirectPlay Voice API.
214 Note: In these release notes the phrases "DirectPlay4", "DirectPlay4
215 interface" or "DirectPlay4 session" are used to mean the IDirectPlay4
216 interface or a session hosted using the IDirectPlay4 interface, even
217 if that interface or session is implemented using the dlls that are
218 part of DirectX 8.0. "DirectPlay8", "DirectPlay8 interface", and
219 "DirectPlay8 session" mean the IDirectPlay8... family of interfaces,
220 or a session hosted using the IDirectPlay8... family of interfaces.
222 Since DirectPlay8 has been completely re-written from the ground up,
223 the DirectPlay8 interfaces are not extensions of the existing
224 DirectPlay4 interfaces. i.e. the DirectPlay8 interfaces do not
225 inherit from the DirectPlay4 interfaces in the object oriented sense.
227 Also, DirectPlay8 sessions are not network compatible with DirectPlay4
230 Note that the DirectPlay4 interfaces are still present in DirectPlay8
231 and are still compatible with previous versions of DirectPlay. So games
232 written for DirectPlay4 will still run on systems with DirectX 8.0
235 To enable maximum scalability, DirectPlay8 uses a callback model. All
236 indications from DirectPlay8 are delivered to the application via an
237 application supplied callback function. Therefore DirectPlay can indicate
238 multiple events to the application in parallel on different threads.
240 Additionally, performance critical operations such as Send and Receive
241 can be performed without copying data, and without thread switching.
243 This programming model allows DirectPlay applications to achieve maximum
244 possible performance and scalability on both single-processor and
245 multi-processor hardware.
247 DirectPlay8 also adds:
248 - Better support for NATs, Firewalls, and Proxy Servers
249 - Application defined payloads on session enumerations and replies
250 - Revised addressing scheme that is URL ruled based designed to be human
251 readable and portable
252 - The use of I/O completion ports in Windows 2000
253 - Improved ease of use through the removal of obtuse services, for example
256 The DirectPlay Voice interfaces allow you to quickly and easily establish
257 voice communications over an existing DirectPlay8 or DirectPlay4 session.
259 DirectPlay Voice provides the following features:
260 - Peer to peer, forwarding server, and mixing server voice topologies
261 - A variety of codecs from 1.2kbit/sec to 64kbit/sec, that can be used
262 royalty free in DirectPlay Voice.
263 - Voice detection to automatically trigger voice transmission
264 - Automatic gain control to automatically adjust the recording volume level
265 - Adaptive queuing that provides a smooth speech stream with minimum latency
266 over different and changing network conditions
267 - Integration with DirectSound & DirectSoundCapture
268 - Sound Hardware Test wizard
269 - Support for IDirectPlay8 and IDirectPlay4 transport sessions
271 DirectPlay8 still has all the benefits of previous versions of DirectPlay,
273 - session setup and teardown
275 - application launching
278 - client/server and peer to peer operation
279 - peer to peer host migration
280 - bandwidth throttling protocol
286 DirectX 8.0 marks the first release that DirectShow has been part of the
287 core DirectX redistribution. This means that for the first time,
288 applications using DirectShow need not install a separate redist, and
289 current DirectX users can now take advantage of DirectShow in their
290 applications. Adding to the existing capabilities for audio and video
291 playback and capture that DirectShow provided, this new release also
292 provides the following new features:
294 Windows Media Format Support: Two new filters enable DirectShow applications
295 to read and write files in Windows Media Format. The ASF Reader filter
296 reads and parses Windows Media Format files. The ASF File Writer filter
297 writes Windows Media Format files; it also does the necessary multiplexing
300 DirectShow Editing Services (DES): This is a complete API for timeline and
301 switching services built on top of DirectShow. This API implements the
302 core of non-linear editing services, and allows for the creation of
303 composite media from a variable number of source audio and video streams.
304 By allowing real-time effects and transitions, true "on-the-fly" source
305 switching, run-time compositing, run-time seeking, and graph management,
306 DES provides a powerful high-level way to use DirectShow, while
307 still allowing applications to access lower-level DirectShow functions.
308 DES replaces cutlists, which are no longer supported.
310 New DVD Support: Two new interfaces, IDVDControl2 and IDVDInfo2, greatly expand
311 the functionality of the DVD Navigator. The new MSWebDVD ActiveX® control
312 makes this functionality available to script-based applications.
313 New DVD features include: Karaoke multichannel audio support, audio volume
314 control through IBasicAudio, support for frame stepping and frame-accurate
315 seeking, simplified access to DVD text information strings, and improved support
316 for parental management controls.
318 DirectX Media Objects: DirectX Media Objects (DMOs) are a new way to write
319 data-streaming components. Like DirectShow filters, DMOs take input data and use
320 it to produce output data. However, the application programming interfaces
321 (APIs) for DMOs are much simpler than the corresponding APIs for DirectShow. As
322 a result, DMOs are easier to create, test, and use than DirectShow filters.
323 A wrapper filter is provided to allow DMOs to be used within DirectShow.
325 Media Parameters: Media parameters are a new set of APIs that support run-time
326 changes to an object's properties. They offer precise control over properties
327 that change rapidly and require both high performance and repeatability. They
328 enable a property to follow an exact curve, such as a sine wave or
329 inverse-square curve, in real time.
332 - MJPEG Decompressor: Decodes a video stream from motion JPEG to uncompressed video
333 - MJPEG Compressor: Compresses an uncompressed video stream using
334 motion JPEG compression.
335 - Null Renderer: Discards samples without displaying or rendering the sample data.
336 Applications can use this filter to discard data from a stream.
337 - Sample Grabber: Retrieves media samples as they move through the filter graph.
338 Applications can use this filter to obtain poster frames or other media data.
340 Dynamic Graph Building: DirectShow applications can now change the graph
341 while it is still playing. This allows new audio or video streams to be added
342 to a graph, effects to be inserted in the graph without any visible gap in the
343 playback, and chains of filters to be paused and run independent of the main graph.
345 Push Model Clock Support: This allows for improved synchronization between
346 audio and video streams. The default audio renderer can now be slaved to
347 another clock, allowing for applications to deal with timing differences
348 between clocks on sound cards and capture devices, among other scenarios.
350 Graph Edit enhancements: GraphEdit now displays filter registration information
351 in the Insert Filters dialog and allows you to spy on existing graphs in
352 external processes (if those processes register their graphs).
358 This version of Producer features many new features to aid in both
359 authoring and auditioning of DirectMusic content. These features include
360 authoring support for audio path configurations, which manages pchannel
361 and synth assignments as well as effects routing, the new DLS level 2
362 format (which includes stereo waves, layering of regions, and filtering)
363 and a new API for scripting, which allows composers and sound designers
364 to integrate audio content directly into an application. Other major
365 features include new track types, including a wave track, a script
366 track, a secondary segment trigger track and a melody track, which
367 integrates a variable approach with greater control of form.
370 DirectX Control Panel
371 =====================
372 Developers can now toggle between DirectX retail and debug system components
373 through the DirectX Control Panel.
376 Broadcast Driver Architecture
377 ======================
379 Broadcast Driver Architecture (BDA) is a set of Ring 0 and Ring 3 software
380 components based on the DirectShow® architecture for streaming multimedia
381 broadcast content. BDA is also a specification that defines how custom
382 components, such as filters for parsing private data, interface with the
383 rest of the system. Digital-TV applications can use the Ring 3 components
384 to build filter graphs, implement a single model for tuning across all
385 network types, automate the storage and retrieval of electronic program
386 guide information, and capture IP data including ATVEF announcements,
387 triggers, and packages.
389 __________________________________________________________________
393 DIRECTX 8.0 SDK NOTES AND KNOWN ISSUES
396 DirectX Audio (DirectSound & DirectMusic)
397 =========================================
399 Below are some known issues with DirectMusic and DirectSound in
400 DirectX 8.0 that you may encounter.
402 - ParamEQ and Distortion effects have parameters that are sampling rate
404 Setting these params to a value that is out of range for that sampling
406 Distortion: Parameters are 'clipped' at the valid range for the
408 ParamEQ: If the frequency is greater than can be supported by the
409 sampling rate, the effect is disabled- In the DirectMusic
410 3DAudio sample, there may be some breakup if Doppler is set > 4
411 - DirectSound buffers that are created with DSBCAPS_CTRLFX must be at
412 least 100ms in length.
418 - All executables compiled against earlier DirectX 8.0 betas must be
419 recompiled with this version to run.
420 - Alt-enter in the samples results in texture corruption for some drivers.
421 Workaround: Get newer drivers.
422 - The value for MaxPrimitiveCount defines the max number of vertices
423 as well as the max number of primitives that can be sent to a
424 DrawIndexedPrimitive or DrawPrimitive call.
425 - A bug in the Windows2000 kernel causes an issue upon mode-switches for
426 AGP surfaces locked with the NOSYSLOCK flag. The contents of any such
427 surface may become inaccessible for the duration of the NOSYSLOCK lock
428 if a mode-switch happens after the Lock and before the Unlock. This happens
429 for both DX7 and DX8 applications. The most likely scenario is a DX8
430 application running on a driver that supports hardware vertex buffers,
431 but using software vertex processing (fixed or shader). Under these
432 scenarios, Direct3D might keep a NOSYSLOCK lock on an AGP vertex buffer.
433 If the user alt-tabs out of the application or does anything else to cause
434 a mode-change, the thread writing into the vertex buffer may fault. There
435 is no known workaround. Microsoft will fix this issue in the next version
436 of Windows and will attempt to ship a fix in a future Windows2000
438 - A bug in the DX6 and DX7 implementation of
439 IDirectDraw*::GetDeviceIdentifier causes the DirectDraw runtime to write
440 four extra bytes past the end of the structure. To work around this issue,
441 allocate an extra four bytes at the end of your DDDEVICEIDENTIFIER*
442 structure. This bug does not exist in the IDirect3D8::GetAdapterIdentifier
444 - The Direct3D8 run-time exhibits the following behvior on all Windows NT
445 platforms. Run a full-screen Direct3D8 application, press Ctrl-Alt-Del,
446 press ESC. The desktop will appear, but the display card will still be in
447 the application's resolution, not the proper desktop resolution. (The user
448 may alt-tab back to the application at this time.) A fix for this will be
449 in the next release of DirectX, and the problem will be fixed in the next
450 version of Windows NT. Developers are urged NOT to try to work-around this
451 problem nor code their own solutions, since such solutions are very likely
452 to interact poorly with our own fix.
453 - Terminating a process with un-released vertex buffers on Win9x DX7 APIs
454 can cause instability. This is caused by a bug in the automatic per-process
455 cleanup code in DirectDraw which causes VBs to be leaked permanently (until
456 reboot) on all Win9x platforms: Windows 95, 98, Millenirum. Applications
457 should be carefully coded to ensure all Vertex Buffers are correctly released
458 before exiting the process.
459 - Applications should be careful when responding to the WM_MOUSEMOVE message.
460 If the application calls IDirect3DDevice8::SetCursorPosition with a coordinate
461 that is outside the current display mode size, then the Direct3D run-time may
462 cause another WM_MOUSEMOVE, which may cause the application to call
463 IDirect3DDevice8::SetCursorPosition again, resulting in an infinite loop.
464 The application should either be careful not to call
465 IDirect3DDevice8::SetCursorPosition with invalid positions, or should never
466 call IDirect3DDevice8::SetCursorPosition with repeated positions.
467 One common scenario for generating invalid mouse cursors is to remove the
468 menu style from a window incorrectly when going full-screen. The SDK sample
469 applications incorrectly use SetWindowLong to remove the menu bar from the
470 window before going fullscreen. The correct technique is to call
471 "hOldMenu = SetMenu(hWnd, NULL)'" before going fullscreen, and then
472 "SetMenu(hWnd, hOldMenu);" before returning to windowed mode.
473 - When using the function ValidateDevice on Win9x the return value will be
474 DD_OK if it is successful.
478 - When using the Direct3D software T&L pipeline (device created with
479 D3DCREATE_SOFTWARE_VERTEXPROCESSING flag set or with
480 D3DCREATE_MIXED_VERTEXPROCESSING flag and software vertex processing
481 toggled on), then point sprite support is guaranteed. When using
482 hardware vertex processing, some older drivers may not support point
483 sprites, indicated by d3dcaps->MaxPointSize = 0. Upgrading to a DX8
484 driver for these parts will enable them.
486 To ensure consistent behavior for point sprite support, set
487 D3DRS_CULLMODE = D3DCULL_NONE
488 D3DRS_FILLMODE = D3DFILL_SOLID
489 when rendering point sprites.
493 - Two vertex shader instructions may produce implementation-specific
494 results for out-of-range inputs, such as the log of a negative number.
495 The log, logp and y- component of the lit instruction macro should not
496 be passed negative values for this reason.
498 Driver/Device Specific Issues:
500 - The Windows Millennium driver for the ATI Rage 128 fails (draws nothing)
501 when using vertex shaders which output more than two texture coordinates
502 per texture coordinate set when the D3DTTFF_PROJECTED bit is not set.
507 - This product includes software developed by the University of California,
508 Berkeley and its contributors D3DX Mesh APIs.
509 - The ID3DXSkinMesh interfaces currently only support 16-bit mesh. 32-bit
510 mesh support is not yet implemented.
511 - All other D3DX Mesh interfaces do support 32-bit meshes even though the
512 docs say they do not.
513 - D3XGenerateAdjacency currently ignored the epsilon value and uses 0.0f
515 - In D3DXMatrixPerspectiveFOV, the aspect ratio is x/y instead of y/x.
521 - There is a bug in DirectInput which causes the Logitech Wingman Formula wheel to
522 report pedal data on the wrong axes.
523 - There are some know issues that can cause mouse behavior to be very sluggish
524 when debugging using DirectInput. There are two reg files that will
525 assist with this issue. They are:
526 Mouse and Keyboard Emulation On.reg
527 Mouse and Keyboard Emulation Off.reg
528 "Mouse and Keyboard Emulation On.reg" will force all mouse calls through
529 dinput emulation, thus making the mouse perform properly inside the debugger.
530 "Mouse and Keyboard Emulation Off.reg" will turn off force emulation.
531 Only use these keys on development machines, they are not intended to be
532 redisted as they are a global setting that effects all Direct Input clients.
533 - The following devices are supported with device images in this release.
536 + Gravis Xterminator Dual Control
537 + Gravis Blackhawk Digital
538 + Gravis Gamepad Pro USB
540 + Gravis Eliminator Gamepad Pro
541 + Gravis Xterminator Digital GamePad
542 + InterAct/3dfx SV-262A HammerHead Fx
544 + InterAct SV-251 Raider Digital
545 + Logitech WingMan Formula (Yellow)
546 + Logitech WingMan Extreme Digital 3D
547 + Logitech WingMan Gamepad Black (USB)
548 + Logitech Wingman Rally Force USB
549 + Logitech Wingman Rumblepad
550 + Microsoft Sidewinder Gamepad Pro
551 + Microsoft SideWinder Force Feedback Wheel
552 + Microsoft SideWinder Force Feedback Pro
553 + Microsoft Sidewinder FF 2
554 + Microsoft Sidewinder Dual Strike
555 + Microsoft Sidewinder Precision 2
556 + Microsoft Sidewinder Plug and Play
557 + Microsoft SideWinder Game Pad
558 + Microsoft SideWinder Precision Racing Wheel
559 + Microsoft SideWinder Precision Pro
560 + Microsoft SideWinder Freestyle Pro
561 + Microsoft SideWinder 3D Pro
567 The following are known issues with DirectPlay in this release that
568 you may need to work around.
570 - Note that the dwTimeoutUntilKeepAlive member of the DPN_CAPS structure
571 specifies a minimum value. The first keepalive packet may be sent as
572 much as 30 seconds later than the minimum value specified in this
573 member. For example, if you set dwTimeoutUntilKeepAlive to 60000
574 (60 seconds) the first keepalive packet may be sent anywhere from
575 60 to 90 seconds after the last normal packet was sent.
576 - To use DirectPlay Voice in full duplex mode, we recommend that you update
577 to the latest drivers for your audio device. Some older drivers do not
578 provide reliable full duplex performance.
579 - If you connect to a location that you have enumerated, the enumeration
580 will be canceled automatically for you. If you attempt to do a cancel
581 asynchronous operation on this enum after the connect is completed you
582 will get back DPNERR_USERCANCEL error code. Be aware that this is the
583 expected behavior and that you should not exit with an error condition.
584 - The modem service provider implementation for DirectPlay8 requires
585 TAPI 2.0 functionality. TAPI 2.0 is available as an installed component
586 on Windows 98 and later, but not on Windows 95. If your application
587 requires modem functionality on the Windows 95 platform, the TAPI 2.0
588 patch for Windows 95 can be obtained on the Microsoft FTP site
589 (ftp://ftp.microsoft.com/developr/TAPI/tapi2195.zip) and distributed
590 with you application.
592 Notes on NATs (Network Address Translators):
594 - There are many different NAT solutions available, some of which are
595 different from others. We have attempted to document some of the issues
596 with various NAT solutions, but is not comprehensive. Please refer to
597 the DirectX Developer Page at http://msdn.microsoft.com/directx for
598 further information on these issues.
600 DirectPlay Voice codecs via Windows ACM (Audio Compression Manager):
602 - DirectPlay Voice uses the following codecs via the Windows ACM:
605 - DSP Group Truespeech
606 - Installation of these codecs with Windows is optional. If they
607 are not installed, then one or more of the compression types in
608 DirectPlay Voice will not function. If the application attempts
609 to use a compression type that is not functional due to a missing
610 ACM codec, it will receive the DVERR_COMPRESSIONNOTSUPPORTED
612 - On Windows 2000, the user can install these codecs through the
613 Add/Remove Hardware wizard. The user should select
614 "Add/Troubleshoot a device". When a list of hardware is presented,
615 the user should select "Add a new device", then on the next
616 page select "No, I want to select the hardware from a list".
617 This will bring up a list of hardware. Select "Sound, video, and
618 game controllers". The "Audio Codecs" item is listed under
619 "(Standard system devices)".
620 - On Windows 9x, the user can install these codecs through the
621 Add New Hardware wizard. When prompted, the user should select
622 "No, I want to select the hardware from a list". In the list of
623 device types, codecs are listed under "Sound video and game
624 controllers". The codecs are listed under two manufacturers.
625 The ADPCM and GSM codecs are listed under "Microsoft Audio
626 Codecs" and the Truespeech codec is listed under "DSP Group".
632 - The GraphEdit Tool (and some of the DirectShow samples) requires MFC42.DLL
633 to be present on the system. The DirectX SDK Setup does not install this
634 DLL. This will only be an issue on Windows 95 systems and will require you
635 to install Microsoft Visual C++ to acquire the DLL.
636 - Application development using the DirectShow base classes libraries requires
637 installation of the DirectShow samples. The source code for the base classes
638 is now included as a sample project, rather than as a separate Classes\Base
639 directory. You must compile these base classes to generate strmbase.lib and
640 strmbasd.lib, which are no longer installed as binary files. If you are
641 linking with strmbase.lib or strmbasd.lib with your own application, be sure
642 to build and link with the updated DirectX 8 libraries (instead of the older
643 libraries that are installed with Visual C++ or the Microsoft Platform SDK).
644 - The samples included with the SDK are configured to compile and link with
645 the updated libraries, which are generated by building the BaseClasses project.
646 Further build instructions are provided in:
647 <DXSDKInstallFolder>\samples\Multimedia\DirectShow\readme.txt.
648 - The <streams.h> header file, along with many other DirectShow-specific header
649 files, is now located in the DirectShow samples BaseClasses directory,
650 which includes the BaseClasses source code and header files. You must add
651 the BaseClasses directory to the beginning of your project's include path
652 settings in order for Visual C++ to find all of the updated header files.
653 - To use the Teletext Decoder Fonts that are shipped with DX8, make sure that
654 the WST_* fonts are installed by examining the \windows\fonts directory.
655 - There is a known problem with the MP3 decoder filter when used with
656 Audio Effects DMOs. If you add an audio effect DMO (like WavesReverb, Echo,
657 or Flange) to an existing MP3 filter graph, the audio could be played back
658 at double speed. The problem would occur whenever the MP3 decoder is connected
659 to a downstream audio effect dmo (via the dmo filter wrapper) that offers a
660 default audio input type which doesn't match the native format of the
661 uncompressed MP3 stream. For example, if you render a 22kHz MP3 file and
662 add a DMO Audio effect, the MP3 filter could misinterpret the input type as
663 being 44kHz when it is actually 22kHz. This would not be a problem for 44kHz
664 MP3 files. This issue will be fixed in a future release.
665 - If you have the SDK on CD-ROM, the Extras\DirectShow\Media directory
666 contains additional media that can be used with DirectShow and the DirectShow
667 Editing Services (DES) interfaces. We have included DV-encoded AVI videos,
668 larger MPEG videos, and higher-quality JPEG images. Since the DV files are
669 very large, you should copy them to your hard disk before playing them to
670 ensure the best performance.
671 - Remote graph spying with GraphEdit works only on Windows 2000.
672 - The DirectShow Editing Services (DES) Color Generator source filter may
673 generate blue or green components incorrectly if they have small values.
674 For best results, use solid primary colors or set Blue and Green
675 components to values of either 0xFF or 0x00.
678 Broadcast Driver Architecture
679 ======================
681 Known issues with Broadcast IP Data Reception under Windows 2000:
683 - After rebooting a Windows 2000 system with a BDA receiver card installed,
684 the BDA NDIS IP NIC is not immediately active. It becomes active only
685 when an application inserts the BDA IPSink filter into a graph and connects
686 its input pin. Once activated by connecting the IPSink filter's input pin,
687 it takes 20 to 30 seconds for the BDA NDIS IP NIC to be assigned an IP
688 address. The address assigned will be a Net 10 address. Once activated,
689 the BDA NDIS IP NIC will remain active until the system is rebooted.
690 - There may be some applications that use the BDA NDIS IP NIC as the default
691 LAN adapter. These apps will fail if the BDA NDIS IP NIC is active. To
692 de-activate the BDA NDIS IP NIC, reboot the system and do not run a TV graph
699 This section contains corrections to the following components of the DirectX SDK documentation:
701 DirectX Graphics (Visual Basic)
705 ===============================
706 DirectX Graphics (Visual Basic)
707 ===============================
709 ---------------------------
710 D3DDevice8.SetRenderTarget
711 ---------------------------
713 The D3DDevice8.SetRenderTarget method takes a third argument that is reserved for future use. It must be set 0.
721 --------------------------------
722 IDirectPlay8Peer::GetPeerAddress
723 --------------------------------
724 You cannot call GetPeerAddress() on yourself.
727 ----------------------------------
728 IDirectPlay8LobbyClient::Initialize
729 ----------------------------------
730 Initialize should include error codes NOTALLOWED and ALREADYINITIALIZED.
733 DPNERR_NOTALLOWED is returned when a user attempptsd to initialize more than one instance of the DirectPlay8LobbyClient per process.
735 DPNERR_ALREADYINITIALIZED is returned when a user tries to call this method more than once.
737 ----------------------------------
738 IDirectPlay8LobbiedApplication::Initialize
739 ----------------------------------
740 This method should include error codes NOTALLOWED and ALREADYINITIALIZED.
741 DPNERR_NOTALLOWED is returned when a user attempptsd to initialize more than one instance of the DirectPlay8LobbiedApplication per process.
743 DPNERR_ALREADYINITIALIZED is returned when a user tries to call this method more than once.
746 ------------------------------------------
747 IDirectPlay8LobbyClient::EnumLocalPrograms
748 ------------------------------------------
750 This method returns DPNERR_DOESNOTEXIST when the GUID that is specified for the application is not registered.
753 -----------------------------
754 IDirectPlay8Server::SetSPCaps
755 -----------------------------
757 This method should have a third parameter: dwFlags. It is reserved for future use and should be set to zero.
760 -----------------------------
761 IDirectPlay8Peer::SetSPCaps
762 -----------------------------
763 This method should have a third parameter: dwFlags. It is reserved for future use and should be set to zero.
765 -----------------------------
766 IDirectPlay8Client::SetSPCaps
767 -----------------------------
768 This method should have a third parameter: dwFlags. It is reserved for future use and should be set to zero.
770 =========================
771 DirectPlay (Visual Basic)
772 =========================
775 --------------------------------
776 DirectPlay8Peer.GetPeerAddress
777 --------------------------------
778 You cannot call GetPeerAddress() on yourself.
780 -----------------------------------
781 DirectPlay8Peer.GetLocalHostAddress
782 -----------------------------------
783 This method is missing from the documentation. The syntax is:
785 GetLocalHostAddress([lFlags As Long]) As DirectPlay8Address
787 The lFlags parameter is reserved and should be set to zero.
789 The method returns a DirectPlay8Address object that contains the local host address.
801 Although DirectShow does provide some APIs for Visual Basic and script developers, these are not extensive enough to warrant a separate Visual Basic compiled help file for DirectShow. Therefore all the DirectShow APIs, both for Visual Basic and C++, can be found under the DirectX C++ node. Note: The DirectShow documentation for Whistler Beta 2 is at an incorrect level in the Table of Contents. Look for it in the next release in its correct position one level under the DirectX C++ node.
803 ----------------------
804 Broadcast Architecture
805 ----------------------
806 The old Broadcast Architecture documentation is now included in the DirectShow documentation under the title "Microsoft TV Technologies."
811 Under Microsoft TV Technologies, the Guide Store APIs were revised significantly after the documentation was "locked down" for beta 2. The new APIs will be documented in the next release.
813 --------------------------------------
814 Video Mixing Renderer late corrections
815 --------------------------------------
817 IVMRSurfaceAllocate::AllocateSurface() can also return E_FAIL if passed an invalid lpAllocInfo->lpHdr.
819 Before calling AllocateSurface explicitly from the client application, one should call IVMRSurfaceAllocator::FreeSurface() to be sure that CAMDDrawMonitorInfo::pDDSDecode ( DDraw Decoding Surface Front Buffer) is NULL. Otherwise, the debug version of quartz.dll gives an assertion.
827 Miscellaneous Issues:
829 - Some samples will compile with errors with the UNICODE flag defined.
833 - There are miscellaneous issues with some display hardware & drivers.
834 Please let us know of any problems you encounter and specify whether you
835 believe it is sample or driver related.
839 - There are several .XTL sample files in the \media folder. These files
840 demonstrate some of the functionality available in the DirectShow Editing
841 Services. You can render these files using the XTLTest C++ sample and
842 the XTLTestVB and DexterVB VisualBasic samples. All provided XTL files
843 refer to media that ships in the SDK's media directory. Rendering XTL
844 files is a great way to get an idea of what the new DirectShow Editing
845 Services APIs make possible. For a simple demo, drag a few of the SDK
846 media directory's sample .XTL files onto the XTLTestVB sample's client area.
847 - The DirectShow Visual Basic samples demonstrate more of the DES functionality
848 than the C++ samples. Be sure to run SlideShowVB and TrimmerVB if you are
849 interested in DES. You can also use the DexterVB ("Dexter Explorer")
850 application as an XTL development/test tool.
851 - The Texture3D sample is known to fail on some systems (referencing
852 invalid memory), for which you may see an error message. This failure is
853 in initialization of D3D. We recommend updating your video card drivers
854 to the most current revision, as that usually resolves the problem.
855 - The DirectShow IDL files are currently located in the
856 \include directory of the SDK for your convenience.
857 - You will be required to build the \BaseClasses libraries before any sample
858 that depends on them can be built or executed. Please review the Readme.Txt
859 file in the DirectShow samples root directory for more information on
860 building the samples.
863 DirectX for Visual Basic Samples:
865 - DBMON.exe is a console application which allows the Visual Basic DirectX
866 developer to take advantage of extended output that debug installs of
867 DirectX provide. This application works only under Windows 2000.
868 To use, execute the application. All debug output will be captured and sent
869 to the console window. If you are not seeing debug output, ensure that
870 you have installed the debug version of DirectX, and that you are running
872 - DXVB Messenger Server is the server portion of a client/server instant
873 messaging application. This sample requires the use of ActiveX Data Object
874 (ADO) to maintain the data needed. If you are running Windows 9x, you must
875 have the latest version of ADO installed on your machine to compile or run
876 this sample. You can install the latest ADO while Visual Basic Professional
877 is being installed or you can download the latest ADO from the web at:
878 http://www.microsoft.com/data/ado/. ADO is installed by default with
879 Visual Basic 6 Enterprise.
880 - If you are experiencing problems searching for and connecting to sessions
881 using DirectPlay for VisualBasic, you may need to update your system.
882 To update, install DCOM98 from:
883 http://download.microsoft.com/msdownload/dcom/98/x86/en/dcom98.exe
889 - The DirectDraw "Debug Level" slider in DirectX Control Panel Applet does
890 not function. Instead use the "Debug Output Level" slider on the Direct3D
891 tab, this will effect both DDraw and D3D8. Also note that DirectDraw labels
892 it's debug spew as coming from "Direct3D8".
893 - The DirectX runtime will not operate on NEC PC98 systems. SDK and Runtime
894 installations have been intentionally blocked on this system.
895 - The DirectX 8.0 runtime requires a Pentium compatible CPU for operation.
896 The DirectX runtime setup will not install on processors that do not report
897 Pentium compatibility. Some older Cyrix processors, while compatible with
898 the Pentium instruction set, report as x486 processors, and thus do not
899 support installation of the DirectX 8.0 run time.
900 - Windows 95 Japanese Systems will require MS UI Gothic patch for Windows 95
901 or Internet Explorer 5.0 (or after) for the DirectX Control Panel to display
902 properly. MS UI Gothic Patch can be found at
903 http://www.microsoft.com/JAPAN/win95/msgotupd/default.htm and IE5 (or after)
904 can be found at http://www.microsoft.com/windows/ie/default.htm.
906 __________________________________________________________________
911 All DirectX 8.0 SDK samples are developed and compiled with Visual Studio 6.0.
912 We have provided Visual Studio 6.0 DSP files for your convenience.
914 All DirectX 8.0 libraries, with the exception of the DirectShow libraries, should
915 be compatible with Visual Studio 5.0 SP3 or higher.
917 __________________________________________________________________
924 Textures used in the Billboard sample, tree02S.tga, tree01S.tga & tree35S.tga,
925 are provided courtesy of Marlin Studios (http://www.marlinstudios.com).
926 They are provided for use with this sample only and cannot be distributed
927 with any application without prior written consent.
929 Viewpoint Digital, Inc.
931 The model used by the Visual Basic AutoParts sample, engine1.x, is provided
932 courtesy of Viewpoint Digital, Inc. (http://www.viewpoint.com). It is provided
933 for use with this sample only and cannot be distributed with any application
934 without prior written consent. V6 Engine Model copyright 1999 Viewpoint
937 3DCAFE and Platinum Pictures
939 The model in the Dolphin samples, Dolphin.x, is derived from the model files
940 (dolphins.zip) provided courtesy of 3DCAFE and Platinum Pictures
941 (http://www.3dcafe.com/). It is provided for use with this sample only.
942 For further terms of use please visit the 3DCAFE site or contact 3DCAFE.